//粘贴处理事件
import chooseImg from '@/utils/chooseImg'

const onPaste = (e) => {
  // 如果剪贴板没有数据则直接返回
  if (!(e.clipboardData && e.clipboardData.items)) {
    return
  }
  // 用Promise封装便于将来使用
  return new Promise((resolve, reject) => {
    // 复制的内容在剪贴板里位置不确定，所以通过遍历来保证数据准确
    for (let i = 0, len = e.clipboardData.items.length; i < len; i++) {
      const item = e.clipboardData.items[i]
      // 文本格式内容处理
      if (item.kind === 'string') {
        item.getAsString((str) => {
          resolve(str)
        })
      // 图片格式内容处理
      } else if (item.kind === 'file') {
        const pasteFile = item.getAsFile()
        // 处理pasteFile
        // TODO(pasteFile)
				const imgEvent = {
					target: {
						files: [pasteFile]
					}
				}
				chooseImg(imgEvent, (url) => {
					resolve(url)
				})
      } else {
        reject(new Error('Not allow to paste this type!'))
      }
    }
  })
}

export default onPaste